|
AT-NFC
2.1 (win)
AT-NFC kernel set
|
#include <t_nfc_user_clb.h>#include <emv_platform_set_align.h>#include <emv_platform_restore_align.h>Go to the source code of this file.
Data Structures | |
| struct | tag_T_NFC_CALLBACKS |
| Struct to handle all callbacks. More... | |
Typedefs | |
| typedef struct tag_T_NFC_CALLBACKS | T_NFC_CALLBACKS |
| Struct to handle all callbacks. | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_GET_READER_TYPE) (T_NFC_CLB_CTX_PARAM KER_CHAR *data, KER_BYTE *dlen) |
| Get IFD type for IFD related config Optional Callback. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CARD_SENDCAPDU) (T_NFC_CLB_CTX_PARAM KER_BYTE btCase, KER_BYTE btCls, KER_BYTE btIns, KER_BYTE btP1, KER_BYTE btP2, KER_INT16U usLc, const KER_BYTE *pbtDataIn, KER_INT16U usLe) |
| Send APDU requset to card. More... | |
| typedef KER_RES(CLB_API * | T_NFC_CALLBACK_CARD_RECEIVERAPDU) (T_NFC_CLB_CTX_PARAM KER_INT16U usTimeout, KER_BYTE *pbtDataOut, KER_INT16U *pusDataOutLength, KER_INT16U usDataOutMaxLength, KER_INT16U *pusSW1SW2, KER_INT32U *pulExecutionTime) |
| Obtain APDU response from card. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_FIELD_OFF) (T_NFC_CLB_CTX_SINGLE_PARAM) |
| PCD field off request. More... | |
| typedef KER_RES(CLB_API * | T_NFC_CALLBACK_CARD_POLL) (T_NFC_CLB_CTX_PARAM KER_INT32U ulTimeout, KER_INT16U *pusCardType, KER_BYTE *pbtUID, KER_INT16U *pusUIDLen) |
| PCD field on and card polling during specified timeout. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CARD_GETINFO) (T_NFC_CLB_CTX_PARAM KER_INT16U *pusCardType, KER_BYTE *pbtUID, KER_INT16U *pusUIDLen) |
| Callback returns info for last activated card. More... | |
| typedef KER_RES(CLB_API * | T_NFC_CALLBACK_CARD_REMOVAL_PROCEDURE) (T_NFC_CLB_CTX_PARAM KER_INT32U ulTimeout) |
| Performs EMV L1 card removal procedure Callback called by Entry Point only. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_RESET_OPERATION_FIELD) (T_NFC_CLB_CTX_SINGLE_PARAM) |
| Reset operation field Callback called by Entry Point only. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_GET_READER_SERIAL_NUMBER) (T_NFC_CLB_CTX_PARAM KER_CHAR *data, KER_BYTE *dlen) |
| Get serial number of the IFD Optional Callback. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_TRACE_SET_MODE) (T_NFC_CLB_CTX_PARAM KER_BYTE btTraceMode) |
| Set trace mode. More... | |
| typedef KER_BYTE(CLB_API * | T_NFC_CALLBACK_TRACE_GET_MODE) (T_NFC_CLB_CTX_SINGLE_PARAM) |
| Get trace mode. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_TRACE_STRING) (T_NFC_CLB_CTX_PARAM const KER_CHAR *pchString) |
| Trace povided nul-term string. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_TRACE_BUFFER) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtDataBuffer, KER_INT16U usDataBufferSize) |
| Trace povided data buffer. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_TRACE_TIME) (T_NFC_CLB_CTX_SINGLE_PARAM) |
| Trace timestamp. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_TRACE_ERROR) (T_NFC_CLB_CTX_PARAM KER_INT16U usTraceLevel, KER_RES resErrCode, const KER_CHAR *pchErrorText) |
| Trace error to system error journal. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_KEEP_TRACE_TIME) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtTimeBuffer, KER_INT16U *pusTimeBufferSize) |
| Keep trace timestamp. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_TRACE_FLUSH) (T_NFC_CLB_CTX_SINGLE_PARAM) |
| Flush trace to tracefile (optional) More... | |
| typedef KER_INT32S(CLB_API * | T_NFC_CALLBACK_MEM_CMP) (T_NFC_CLB_CTX_PARAM const KER_VOID *pvBuffer1, const KER_VOID *pvBuffer2, KER_INT16U usCount) |
| Compare memory buffers. More... | |
| typedef KER_VOID *(CLB_API * | T_NFC_CALLBACK_MEM_SET) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_BYTE btValue, KER_INT16U usCount) |
| Reset memory buffer with specified value. More... | |
| typedef KER_INT16U(CLB_API * | T_NFC_CALLBACK_MEM_CPY) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, const KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize) |
| Copy one memory buffer to another. More... | |
| typedef KER_VOID *(CLB_API * | T_NFC_CALLBACK_MEM_MOVE) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize) |
| Copy one memory buffer to another (event if buffer overlaped) More... | |
| typedef KER_INT16U(CLB_API * | T_NFC_CALLBACK_MEM_ADD) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_INT16U usDestBufferOffset, const KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize) |
| Add memory buffer to existing buffer with offset. More... | |
| typedef KER_INT16U(KER_CDECL * | T_NFC_CALLBACK_MEM_SPRINTF) (T_NFC_CLB_CTX_PARAM KER_CHAR *pchDestBuffer, KER_INT16U usDestBufferSize, const KER_CHAR *pchFormat,...) |
| sprintf_s analog More... | |
| typedef KER_INT16U(KER_CDECL * | T_NFC_CALLBACK_MEM_VSPRINTF) (T_NFC_CLB_CTX_PARAM KER_CHAR *pchDestBuffer, KER_INT16U usDestBufferSize, const KER_CHAR *pchFormat, va_list _ArgList) |
| sprintf_s analog More... | |
| typedef KER_VOID *(CLB_API * | T_NFC_CALLBACK_MEM_ALLOC) (T_NFC_CLB_CTX_PARAM KER_INT16U usBufferSize) |
| allocate memory buffer More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_MEM_RELEASE_EX) (T_NFC_CLB_CTX_PARAM KER_VOID *pBuffer, KER_INT16U usBufferSize) |
| release previously allocated memory buffer More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_GET_CONFIG_BY_ID) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtAID, KER_INT16U usAIDLen, const KER_TLV *pTranDataList, const KER_TLV *pTranContextList, KER_INT16U usID, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen) |
| Provide terminal configuration specific for AID-Transaction data combination which have no emv tag assinged by ID. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_GET_CUST_TAG_BY_ID) (T_NFC_CLB_CTX_PARAM KER_INT16U usID, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen) |
| Remapp terminal configuration id to custom tag. More... | |
| typedef KER_INT16U(CLB_API * | T_NFC_CALLBACK_CFG_GET_ID_BY_CUST_TAG) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtTag, KER_INT16U usTagLen) |
| Remapp custom tag to configuration ID. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_IS_TRAN_CASH) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for cash tran (cash or cash disbursement at POS) More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_IS_TRAN_SALE) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for goods and services. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_IS_TRAN_CASHBACK) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for cashback. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_IS_TRAN_MAN_CASH) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for cashback. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_IS_TRAN_REFUND) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for cashback. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_IS_APPROVED_ONLINE) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtARC, KER_INT16U usARCLen) |
| Check online result by ARC. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_SET_CONFIG_BY_ID) (T_NFC_CLB_CTX_PARAM KER_INT16U usID, const KER_BYTE *pbtValue, KER_INT16U usValueLen) |
| Keeps trerminal params in "scratch pad". More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CFG_GET_EP_CONFIG) (T_NFC_CLB_CTX_PARAM const KER_TLV *pTranData, HAL_CONFIG_NFC_COMB **ppCombList) |
| Provides configuration (common / combination / tran related for EP This callback called by Entry Point only. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_GET_DEFAULT_KERNEL_ID) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pAID, KER_INT16U usAIDLen, KER_BYTE *pbtKernelID, KER_BYTE *pbtKernelIDLen, KER_BYTE btMaxLen) |
| Provides default AID - Kernel ID mapping Optional callback called by Entry Point only. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_GET_CUSTOM_KERNEL_ID) (T_NFC_CLB_CTX_PARAM const KER_BYTE *p61, KER_INT16U us61Len, KER_BYTE *pbtKernelID, KER_BYTE *pbtKernelIDLen, KER_BYTE btMaxLen) |
| Provides custom mapping between Directory Entry and Requested Kernel ID Optional callback called by Entry Point only. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CV_CHECK_CVM_COND) (T_NFC_CLB_CTX_PARAM KER_BYTE btCVM, KER_BYTE btCondition) |
| Check if non standard cvm condition met. More... | |
| typedef KER_BYTE(CLB_API * | T_NFC_CALLBACK_CV_APPLY_CVM) (T_NFC_CLB_CTX_PARAM KER_BYTE btCVM, KER_BYTE *pbtRes, KER_BYTE *pbtOutcomeCVM, KER_BYTE *pbtTVR, KER_BYTE btTVRLen) |
| Apply non standard cvm. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_DEX_DATAFROMKERNEL) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtKernelData, KER_INT16U usKernelDataLen) |
| Data exchange callback. More... | |
| typedef KER_RES(CLB_API * | T_NFC_CALLBACK_DEX_DATAFROMTERMINAL) (T_NFC_CLB_CTX_PARAM KER_INT16U usTimeout, KER_INT16U usParam, KER_VOID *pParam, KER_BYTE **ppbtTerminalData, KER_INT16U *pusTerminalDataLen) |
| Data exchange callback. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_DEX_FREERESULT_EX) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtData, KER_INT16U usDataLen) |
| Data exchange callback. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_HASH) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, KER_VOID *pExtra, const KER_BYTE *pbtDataBuffer, KER_INT16U usDataBufferLen, KER_BYTE *pbtHash, KER_INT16U *pusHashLen, KER_INT16U usHashSize) |
| Calculates hash for data buffer provided. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_HASH_INIT) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, KER_VOID *pExtra, KER_VOID **ppHashHandle) |
| Initiates hash calculation. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_HASH_UPDATE) (T_NFC_CLB_CTX_PARAM KER_VOID *pHashHandle, KER_BYTE btAlg, const KER_BYTE *pbtDataBuffer, KER_INT16U usDataBufferLen) |
| Passes data for hash calculation (can be executed several times) More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_HASH_COMPLETE) (T_NFC_CLB_CTX_PARAM KER_VOID *pHashHandle, KER_BYTE btAlg, KER_BYTE *pbtHash, KER_INT16U *pusHashLen, KER_INT16U usHashSize) |
| Calculates hash on prev. provided data. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_UNPRED_NUMBER) (T_NFC_CLB_CTX_PARAM KER_INT16U usUnpredNumLen, KER_BYTE *pbtUnpredNum) |
| Calculates unpredictable number. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_SET_AC) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtAc, KER_INT16U usAcLen) |
| Updates unpredictable (random) number calculator with last AC (9F26) value (only if it was obtained from card) More... | |
| typedef struct tag_HAL_CRYPT_PK | HAL_CRYPT_PK |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_GET_CA_PK) (T_NFC_CLB_CTX_PARAM KER_BYTE btKernelID, const KER_BYTE *pbtRID, KER_BYTE btRIDLen, KER_BYTE btKeyIndex, HAL_CRYPT_PK *pCA_PK) |
| Get CA PK by index from repositoty. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_MSG_RECOVERY) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtPK, KER_INT16U usPKLen, const KER_BYTE *pbtExp, KER_INT16U usExpLen, KER_BYTE btAlg, const KER_BYTE *pbtMsg, KER_INT16U usMsgLen, KER_BYTE *pbtResult, KER_INT16U *pusResultLen, KER_INT16U usMaxLen) |
| Message recovery according to EMV Book 2, Appendix A2.1. More... | |
| typedef struct tag_HAL_CRYPT_CERT_INFO | HAL_CRYPT_CERT_INFO |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_CERT_REVOCATION) (T_NFC_CLB_CTX_PARAM KER_BYTE btKernelID, const KER_BYTE *pbtRID, KER_BYTE btRIDLen, KER_BYTE btKeyIndex, const HAL_CRYPT_CERT_INFO *pCert) |
| Get CA PK by index from repositoty. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_ENCRYPT) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, const KER_BYTE *pbtKey, KER_INT16U usKeyLen, const KER_BYTE *pbtIV, KER_INT16U usIVLen, const KER_BYTE *pbtData, KER_INT16U usDataLen, KER_BYTE *pbtResult, KER_INT16U *pusResultLen, KER_INT16U usMaxLen) |
| Performs encryption. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_CRYPT_DECRYPT) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, const KER_BYTE *pbtKey, KER_INT16U usKeyLen, const KER_BYTE *pbtIV, KER_INT16U usIVLen, const KER_BYTE *pbtData, KER_INT16U usDataLen, KER_BYTE *pbtResult, KER_INT16U *pusResultLen, KER_INT16U usMaxLen) |
| Performs decryption. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_INIT_CHECKSUM_EX) (T_NFC_CLB_CTX_PARAM KER_BYTE btType, const KER_CHAR *pchKernelModuleList, KER_INT16U usKernelModuleListLen, KER_BYTE *pbtCheckSum, KER_INT16U *pusCheckSumLen, KER_INT16U usMaxSize) |
| Pass checksums to the kernel. More... | |
| typedef KER_INT16U(CLB_API * | T_NFC_CALLBACK_UI_SCHEDULE_CHANGE_REQUEST) (T_NFC_CLB_CTX_PARAM KER_INT32U ulDelayTime, const NFC_OUTCOME_UI *pUI) |
| Schedule async change User Interface request. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_UI_CANCEL_CHANGE_REQUEST) (T_NFC_CLB_CTX_PARAM KER_INT16U usRequestID) |
| Cancel prev. scheduled async change User Interface request. More... | |
| typedef KER_VOID(CLB_API * | T_NFC_CALLBACK_SYS_SLEEP) (T_NFC_CLB_CTX_PARAM KER_INT32U ulTimeout) |
| Sleeps for specified timeout. More... | |
| typedef KER_INT32U(CLB_API * | T_NFC_CALLBACK_SYS_GET_100_MICROSEC_TIMESTAMP) (T_NFC_CLB_CTX_SINGLE_PARAM) |
| Provides terminal timestamp for Kernel (in 100 microsec resolution) More... | |
| typedef KER_BYTE(CLB_API * | T_NFC_CALLBACK_SYS_GET_DATE_TIME) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtDateTimeBuffer, KER_BYTE btDateTimeBufferLen) |
| Provides local terminal date & time for Kernel. More... | |
| typedef KER_BYTE(CLB_API * | T_NFC_CALLBACK_SYS_GET_UTC_DATE_TIME) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtDateTimeBuffer, KER_BYTE btDateTimeBufferLen) |
| Provides terminal UTC date & time for Kernel. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_NOTIFY) (T_NFC_CLB_CTX_PARAM KER_INT16U usNotifyType, const KER_VOID *pNotifyData, KER_INT16U usNotifyDataLen) |
| Notifies HAL about some specific event. More... | |
| typedef KER_BOOL(CLB_API * | T_NFC_CALLBACK_ONLINE_CHECK) (T_NFC_CLB_CTX_SINGLE_PARAM) |
| Checks HAL for unable to go online condition (for AmEx C-4). More... | |
Functions | |
| KER_RES | nfcRegisterCallback (T_NFC_CALLBACKS *pCallbacks, KER_INT16U usCllbackID, KER_VOID *pCallback) |
| HAL callback registration. More... | |
T-NFC KERNEL callback interface
| #define T_NFC_CALLBACK_CRYPT_ALG_AES 0x10 |
AES
| #define T_NFC_CALLBACK_CRYPT_ALG_DES 0x00 |
DES
| #define T_NFC_CALLBACK_CRYPT_ALG_NA 0xFF |
N/A
| #define T_NFC_CALLBACK_CRYPT_CERT_INFO_VER 0 |
initial version
| #define T_NFC_CALLBACK_CRYPT_HASH_ALG_SHA1 1 |
SHA1 hash for CDA
| #define T_NFC_CALLBACK_CRYPT_HASH_ALG_TC_HASH 0 |
20 bytes hash for tag 98
| #define T_NFC_CALLBACK_CRYPT_REC_ALG_RSA_EMV 1 |
MSG Recovery by RSA, EMV Book 2 Annex A2.1
| #define T_NFC_CVM_RES_FAIL 0x03 |
failure (not verified)
| #define T_NFC_CVM_RES_OK 0x00 |
cvm applied, cv completed
| #define T_NFC_CVM_RES_UNREC 0x02 |
cvm unrecognised
| #define T_NFC_CVM_RES_UNSUPP 0x01 |
cvm unsupported